13 28 Formatage des dates
Poursuivons notre exploration de la gestion d'événements en JavaFX. Cette fois, nous ajoutons une CheckBox sous notre bouton existant pour conditionner le comportement de l'application. La CheckBox aura un texte et se positionne en rowIndex = 2, columnIndex = 1 dans le GridPane.
Pourquoi pas un handler sur la CheckBox ?
On pourrait imaginer brancher un handler qui se déclenche à chaque cochage/décochage. Mais en pratique, pour la plupart des contrôles, on ne se soucie pas de l'état intermédiaire — on lit l'état au moment de valider, c'est-à-dire au clic sur un bouton (typiquement un bouton « Enregistrer » ou « Valider »). C'est à ce moment-là qu'on récupère l'état de tous les champs en une fois.
La logique sera donc : si la case est cochée, on affiche le « Bonjour » personnalisé ; sinon, on ne fait rien (ou on garde le comportement par défaut). Nous n'avons donc pas besoin de réagir aux multiples cochages/décochages que l'utilisateur peut faire avant de valider.
Brancher la CheckBox au contrôleur
Dans le fichier FXML, on assigne un fx:id à la CheckBox, puis on déclare la variable correspondante dans le contrôleur, annotée @FXML :
@FXML
private CheckBox maCase;
On ajoute une méthode public void verifierEtat() annotée @FXML qui vérifie maCase.isSelected(). Dans notre handler de bouton, on conditionne désormais le message : si la case est cochée, on construit et affiche le « Bonjour » concaténé avec le contenu du TextField ; sinon, on n'affiche rien.
À l'exécution, en tapant « Alex » dans le champ : si la case est cochée, le clic affiche « Bonjour Alex » ; si la case n'est pas cochée, rien ne se passe. La logique est simple, mais elle illustre bien la philosophie JavaFX : on lit l'état des contrôles au moment voulu, sans s'encombrer d'événements intermédiaires. C'est tout pour cette vidéo sur la CheckBox dans la gestion d'événements. À bientôt.